/**
 * Timing.h
 *
 * @author Bematech S.A.
 */
#ifndef __BILBAO_UTIL_TIMING_CLASS_H__
#define __BILBAO_UTIL_TIMING_CLASS_H__

#include "bilbao/types.h"
#include "bilbao/lang/Thread.h"

namespace bilbao
{
	namespace util
	{
		/**
		 * @brief
		 *
		 */
		class Timing
		{
		public:
			/**
			 * Construtor
			 */
			Timing( void );

			/**
			 * Destrutor
			 */
			virtual ~Timing( void );

			/**
			 *
			 */
			void static getTimeStamp( std::string& );

			/**
			 *
			 */
			void static getShortTimeStamp( std::string& );

		private:

			/**
			 * Operador de cÃ³pia
			 */
			Timing& operator=( const Timing& );

			/**
			 * Construtor de cÃ³pia
			 */
			Timing( const Timing& );

#ifdef BILBAO_CPLUPLUS
			/**
			 *
			 */
			void static getTimeStampCpp( std::string& );
			/**
			 *
			 */
			void static getShortTimeStampCpp( std::string& );
#else
			/**
			 *
			 */
			void static getTimeStampC( char result[15] );
			/**
			 *
			 */
			void static getShortTimeStampC( char result[15] );
#endif
		};

	} //namespace util
} //namespace bilbao

#endif //__BILBAO_UTIL_TIMING_CLASS_H__
